.lzp-tooltip {
  --lzp-popover-bg-color: var(--lzp-bg-color-overlay);
  --lzp-popover-font-size: var(--lzp-font-size-base);
  --lzp-popover-border-color: var(--lzp-border-color);
  --lzp-popover-padding: 12px;
  --lzp-popover-border-radius: 4px;
  display: inline-block;
}

.lzp-tooltip {
  .lzp-tooltip__popper {
    background: var(--lzp-popover-bg-color);
    border-radius: var(--lzp-popover-border-radius);
    border: 1px solid var(--lzp-popover-border-color);
    padding: var(--lzp-popover-padding);
    color: var(--lzp-text-color-regular);
    line-height: 1.4;
    text-align: justify;
    font-size: var(--lzp-popover-font-size);
    box-shadow: var(--lzp-box-shadow-light);
    word-break: break-all;
    box-sizing: border-box;
    z-index: 1000;
    #arrow,
    #arrow::before {
      position: absolute;
      width: 8px;
      height: 8px;
      box-sizing: border-box;
      background: var(--lzp-popover-bg-color);
    }
    #arrow {
      visibility: hidden;
    }
    #arrow::before {
      visibility: visible;
      content: '';
      transform: rotate(45deg);
    }
    &[data-popper-placement^='top'] > #arrow {
      bottom: -5px;
    }

    &[data-popper-placement^='bottom'] > #arrow {
      top: -5px;
    }

    &[data-popper-placement^='left'] > #arrow {
      right: -5px;
    }

    &[data-popper-placement^='right'] > #arrow {
      left: -5px;
    }
    &[data-popper-placement^='top'] > #arrow::before {
      border-right: 1px solid var(--lzp-popover-border-color);
      border-bottom: 1px solid var(--lzp-popover-border-color);
    }
    &[data-popper-placement^='bottom'] > #arrow::before {
      border-left: 1px solid var(--lzp-popover-border-color);
      border-top: 1px solid var(--lzp-popover-border-color);
    }
    &[data-popper-placement^='left'] > #arrow::before {
      border-right: 1px solid var(--lzp-popover-border-color);
      border-top: 1px solid var(--lzp-popover-border-color);
    }
    &[data-popper-placement^='right'] > #arrow::before {
      border-left: 1px solid var(--lzp-popover-border-color);
      border-bottom: 1px solid var(--lzp-popover-border-color);
    }
  }

  .fade-enter,
  .fade-leave {
    opacity: 1;
  }

  .fade-enter-active,
  .fade-leave-active {
    transition: opacity var(--lzp-transition-duration);
  }

  .fade-enter-from,
  .fade-leave-to {
    opacity: 0;
  }
}
